package com.tdam2012.grupo04;

import java.util.ArrayList;

import java.util.List;

import com.tdam2012.grupo04.data.ConectividadProvider;

import android.os.Bundle;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

public class ConectividadListActivity extends ListActivity {

	private ConectividadAdapter _adapter;
	 
	private List<Conexion> _conexiones = new ArrayList<Conexion>();
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_conectividad_list);
        formatListView();
    }
    
    protected void onResume() {
    	super.onResume();
    	_adapter.get_conectividadesAdapter().clear();
    	 cargarConexiones();
    	_adapter.set_conectividadesAdapter(_conexiones);
    	_adapter.notifyDataSetChanged();
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    	return true;
    }
        
    private void formatListView() {
		_adapter = new ConectividadAdapter(); 
		getListView().setAdapter(_adapter); 
	}
    
    private void cargarConexiones() {
        
    	ContentResolver cr = getContentResolver();
    	//Cambie esto
		Cursor cursor = cr.query(ConectividadProvider.CONTENT_URI, null,ConectividadProvider.GET, null, null);

		if (cursor.getCount() > 0) {
			while (cursor.moveToNext()) {
				Integer cone = Integer.parseInt(cursor.getString(1));
				String fecha=cursor.getString(3);
				String tipo=cursor.getString(2);

				Conexion conexion = new Conexion(cone, fecha, tipo);
				_conexiones.add(conexion);
				
			}
		}
		cursor.close();
    }
    
    class Holder{
    	TextView txtFechayHora;
    	TextView txtTipoAccion;
    	ImageButton btnEliminarItem;
    }
    
    public class ConectividadAdapter extends BaseAdapter{
    	private List<Conexion> _conectividadesAdapter;
		private LayoutInflater _inflater;
    	
    	public ConectividadAdapter(){
    		set_conectividadesAdapter(new ArrayList<Conexion>());
    		this._inflater = LayoutInflater.from(ConectividadListActivity.this);
    		
    	}
    	public void addConectividad(Conexion conexion)
    	{
    		get_conectividadesAdapter().add(conexion);
    	}
    	
    	public Conexion getConectividad(int position)
    	{
    		Conexion conexion =(Conexion)getItem(position);
    		return conexion;
    	}
  	

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return get_conectividadesAdapter().size();
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return get_conectividadesAdapter().get(position);
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}
	
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			
			Holder holder = null;
			
			if(convertView == null){
				convertView = _inflater.inflate(R.layout.action_item,null);
				holder = new Holder();
				holder.txtFechayHora = (TextView) convertView.findViewById(R.id.txtFechayHora);
				holder.txtTipoAccion = (TextView) convertView.findViewById(R.id.txtTipoAccion);		
				
				convertView.setTag(holder);
			} else {
				
				holder = (Holder) convertView.getTag();
			}
			
			Conexion co= get_conectividadesAdapter().get(position);
			String fecha=co.get_fecha();
			String tipo=co.get_tipo();
			String estadoConexion;
			Integer cone=co.get_conexion();
			if (cone==1){
				estadoConexion=getString(R.string.ConectividadListActivity_conexionHabilitada);
			}else{
				estadoConexion=getString(R.string.ConectividadListActivity_conexionDeshabilitada);
			}
			
			//Cambie esto
			holder.txtFechayHora.setText(fecha);
			holder.txtTipoAccion.setText(tipo+": "+estadoConexion);
			
			return convertView;
		}
		
		private List<Conexion> get_conectividadesAdapter() {
			return _conectividadesAdapter;
		}
		private void set_conectividadesAdapter(List<Conexion> _conexiones) {
			this._conectividadesAdapter = _conexiones;
		}
    	
    	
    }
  
}
